#include <stdio.h>

void choose(int x[]);    //��Ԫ��ѡ������
void exchange(int x[]);  //ð������
void insert(int x[]);    //��������
int main(void) {
    int i, a[10], b[10], c[10];
    for (i = 0; i < 10; i++) {
        scanf("%d", &a[i]);       //����
        b[i] = a[i];
        c[i] = a[i];     //����
    }
    choose(a);
    exchange(b);
    insert(c);
    return 0;
}

void choose(int x[]) {
    int i, j, min, compare = 0, swap = 0, tem;//temΪ�����м�ֵ
    for (i = 0; i < 9; i++) {
        min = x[i];
        for (j = i + 1; j < 10; j++) {
            if (x[j] < x[i]) {
                min = x[j];
            }
            compare++;
        }
        tem = x[i];
        x[i] = x[j];
        x[j] = tem;
        swap++;
    }
    printf("%d %d ", compare, swap);
}

void exchange(int x[]) {
    int i, r, flag = 1, flag0 = 0, flag1 = 0;//flag0Ϊ�Ƚϣ�flag1Ϊ����
    while (flag) {
        flag = 0;
        for (i = 0; i < 9; i++) {
            flag0++;
            if (x[i] > x[i + 1]) {
                r = x[i];
                x[i] = x[i + 1];
                x[i + 1] = r;
                flag = 1;
                flag1++;
            }
        }
    }
    printf("%d %d ", flag0, flag1);
}

void insert(int x[]) {
    int i, j, r, k, flag = 0, flag0 = 0, flag1 = 0;//flag0Ϊ�Ƚϣ�flag1Ϊ����
    for (i = 1; i < 10; i++) {
        flag = 0;
        j = i - 1;
        while ((x[j] > x[i]) && (j >= 0)) {
            j -= 1;
            flag = 1;
            flag0++;
        }
        if (x[j] <= x[i])
            flag0++;
        r = x[i];
        for (k = i - 1; k >= j + 1; k--) {
            x[k + 1] = x[k];
            flag1++;
        }
        x[j + 1] = r;
        if (flag)
            flag1++;
    }
    printf("%d %d", flag0, flag1);
}
